草庐IT

c++ - constexpr 未定义行为

全部标签

variables - golang 编译器说程序正在重新定义变量,还没有重新定义

编译器说每个已定义的变量都在5行后再次定义并引发错误,当然我没有在5行后重新定义所有变量,我该如何停止这个错误?这是其中一个结构的示例typeHolderstruct{NamestringHolders_needintAvailint}它声称在32之类的结构关闭后的行上有redifend我已经找到了答案 最佳答案 您应该添加一些代码并让我们确切知道您在做什么。您可能在初始化变量后使用:=而不是=。例如i:=1//useii=2//changevalueofiusing=sinceihasalreadybeendeclared//i:

go - 在包中定义共享变量 - go

我有一个包含多个go文件的包,我正在寻找使用这些变量时要遵循的最佳实践varprintstringtypesomeStructstruct{//somevars}考虑包文件中包含以下go文件file1.go有一个字符串变量printfile2.go有一个结构体someStructfile3.go需要一个字符串变量打印file4.go需要一个结构体someStruct我应该在file3.go中访问/使用file1.go中的变量还是创建一个新的字符串变量,即file3print我应该以同样的方式访问/使用file4.go中的file2.go中的someStruct或者创建一个新结构,即fi

go - 如何使用自定义十六进制颜色显示文本

我正在使用thislibrary用于在打印的字符串上应用颜色。我可以使用简单的标准颜色:color.New(color.FgBlue)是否可以在此库中使用我的自定义颜色?例如,我有一个十六进制颜色-#00FFFF是否可以将它与库一起使用? 最佳答案 Fatih的颜色库不支持RGB颜色,只支持标准的16种ANSI颜色。真彩色支持因终端仿真器而异。我发现一个支持“真彩色”的库是https://github.com/wayneashleyberry/truecolor.您可以在https://gist.github.com/XVilka/

go - "..."未定义("..."类型没有字段或方法 "...")

我正在为我的goapi设置crud操作。创建所有函数后,我收到错误“app.createApplicationundefined(类型Application没有字段或方法createApplication)”,尽管我已经创建了它。确保变量与现有包的名称不同,正如其他有关堆栈溢出的问题所述。API.gopackagecontrollersimport("encoding/json""fmt""log""net/http""os""strconv""time""github.com/gorilla/mux""github.com/jinzhu/gorm"_"github.com/jinzh

go - 使用 var vs function 定义函数

导出:varMyFunction=func(){}functionMyFunctionfunc(){}未导出:varmyFunction=func(){}functionmyFunctionfunc(){}我读了varfunctionName=function(){}vsfunctionfunctionName(){}这是关于Javascript的。我考虑从functionmyFunctionfunc(){}更改为varmyFunction=func(){}的原因是后者让我更容易完成我的单元测试。所以我想知道在进行此更改之前是否需要注意什么。 最佳答案

csv - 为什么这会给我一个未定义的错误?

我正在用go编写一个简单的csv文件解析器,无法找出为什么我使用以下代码得到“undefined:csvfile”和“undefined:err”。从所有示例来看,它似乎都是正确的。varsourcestringflag.StringVar(&source,"file","test.csv","thefiletoparse")flag.Parse()csvfile,err=os.Open(source) 最佳答案 使用:=,而不是=,来创建新变量:csvfile,err:=os.Open(source)

oop - 如何定义静态成员函数?

我正在使用golang构建网络服务器。我正在使用MVC架构。现在我不知道如何制作静态成员函数。例如,我有一个结构User作为我的模型之一:typeUserstruct{namestringpasswordstring}显然,我还需要以下功能:func(userUser)addUser(){conn:=ConnToDB()query="insertintouser(name,password)values('"+user.name+"','"+user.password+"');"conn.execute(query)}func(userUser)changeNameById(idint

go filepath.Walk 行走行为

在我的代码文件路径中。Walk遍历目录,在示例中所有目录都称为dir1.dir2.dir10.dir100.diretc当遍历目录时它会看到1.dir10.dir2.dir我如何制作自己的walkFunc以便它通过这样的目录,1.dir2.dir10.dir 最佳答案 如docs中所述filepath.Walk按词法顺序遍历条目。如果您想以不同的顺序列出它们,您可以:使用File.ReadDirNames进行自己的遍历调用filepath.Walk,将所有路径放入一个slice中,并按需要排序。

go - 为什么 golang 在 slice 和 map 之间的 `[]` 运算符上实现不同的行为?

这个问题在这里已经有了答案:Whyaremapvaluesnotaddressable?(2个答案)关闭4年前。typeSstruct{eint}funcmain(){a:=[]S{{1}}a[0].e=2b:=map[int]S{0:{1}}b[0].e=2//error}a[0]是可寻址的,但b[0]不是。我知道第一个0是一个索引,第二个0是一个键。为什么golang会这样实现?有什么进一步的考虑吗?我已经阅读了github.com/golang/go/src/runtime中map的源代码如果maxKeySize和maxValueSize足够小,并且映射结构已经支持indirec

go - 如何确保自定义数据结构的编译时安全

我正在编写一些数据结构来尝试并了解Go语言,并且正在为Go缺乏泛型而苦苦挣扎。在我的实现中,我选择强制每个用户实现一个接口(interface),这样我的结构就可以抽象地引用这些对象,但我不喜欢我的解决方案,因为正如您将看到的那样,这在编译时没有得到验证。比较接口(interface)保存在容器中的每个对象都必须实现以下签​​名的比较函数(如果您想要保存的都是原始类型,那就麻烦了)typeComparerinterface{Compare(Comparer)int}然后您可以拥有实现接口(interface)的各种元素,如float64或自定义结构:float64typenumberf